Geometric or spatial transformations are operations that redefine spatial relationships between points in an image. Generally, a spatial transformation is defined as a mapping function that establishes a spatial correspondence between all points in the input and output images. Given a spatial transformation, each point in the output assumes the value of its corresponding point in the input image. Common applications for applying a geometric transformation include image distortion correction, compensation of geometrically distorted image projected on non-flat or perpendicular surfaces, and compensation of optical distortions.
Geometric transformation algorithms use simplifications in processing or modeling of the problem in order to simplify implementation. These compromises result in limitations on the complexity of the transformation and/or introduce results that do not match the transformation exactly. One such simplification method is called the two-pass method. This method decomposes a 2D map into a series of 1D maps. Processing geometric transforms in 1D is much simpler than in 2D and allows high optimization of the hardware. A general discussion of image warping, including some prior art techniques mentioned below, can be found in the IEEE Computer Society Press Monograph entitled Digital Image Warping, George Wolberg, 1998, which is hereby incorporated by reference.
Much of the current state of the art in image warping is based on techniques used in texture mapping for 3D computer graphics, as well as other specialized methods developed specifically for special effects video. Texture mapping as used in 3D graphics is typically implemented as a non-separable 2D geometric operation. The non-separable methods typically approximate the geometric distortion as a collection of piecewise linear distortions, or focus on perspective mappings. A perspective mapping is useful in 3D graphics as this mapping defines how to render a 3D object to a 2D viewing area, however distortions such as pin/barrel effect and lens aberration present in optical systems cannot be modeled as a perspective mapping. Using piecewise linear representations for the geometric distortions can significantly increase memory requirements.
Due to the complexity of implementing non-separable methods most prior art designs simplify the filtering/interpolation methods used, for example MIP (“multum in parvo”) mapping which uses a hierarchy of filtered images is often substituted for complex filtering. The image artifacts created using this simplified filtering are unacceptable for video processing. Other texture mapping methods exploit the fact that in 3D graphics it is often required to warp a single static texture (image) for many different distortions, while in optical processing it is important to be able to warp dynamic images using a single geometric distortion.
Methods specifically developed for video warping are discussed in U.S. Pat. Nos. 5,175,808 to Sayre and 5,204,944 Wolberg et al. These methods are based on a pixel-by-pixel (i.e. look-up tables) representation of the geometric transformation. However, a pixel-by-pixel representation requires a large amount of data storage and does not allow for a simple method of performing manipulations of the geometric transformation (example rotation, scaling translation of an image in addition to the geometric transformation). Other separable methods for geometric transformations are limited to affine or perspective transformations that cannot perform “non-linear” transformations, for example see U.S. Pat. No. 4,835,532 to Fant, U.S. Pat. No. 4,975,976 to Kimata et al., U.S. Pat. No. 5,808,623 to Hamburg, and U.S. Pat. No. 6,097,855 to Levien. Methods that use mathematical models of the spatial transformation and allow the user to adjust the parameters of the model are often limited to affine and perspective warps. As has already been discussed, affine or perspective warps cannot adequately model distortions required for optical systems.